﻿////////////////////////////////////////////////////////////////////////////////
//
//  WEAKLISTENER.COM - http://www.weaklistener.com
//  Copyright© 2009 Matt Bolt <mattbolt@weaklistener.com>
//  All Rights Reserved.
//  
//  Licensed under the Apache License, Version 2.0 (the "License"); you may not 
//  use this file except in compliance with the License. You may obtain a copy of 
//  the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by 
//  applicable law or agreed to in writing, software distributed under the License 
//  is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 
//  either express or implied. See the License for the specific language governing 
//  permissions and limitations under the License. 
//
////////////////////////////////////////////////////////////////////////////////

package com.weaklistener.twitter.core {
    
    /**
     * This interface defines an implementation prototype 
     * 
     * @author Matt Bolt
     */
    public interface ITweetController {
        
        //--------------------------------------------------------------------------
        //
        //  Methods
        //
        //--------------------------------------------------------------------------
        
        /**
         * This method initializes the tweets for a specific user.
         * 
         * @param	userName The user name to gather the tweet information for.
         * 
         * @param   count The amount of tweets to initialize for the user.
         */
        function initializeTweetsFor(userName:String, count:uint):void;
            
        /**
         * This method will forward the tweet message to the next one available.
         */
        function nextTweet():void;
        
        /**
         * This method will rewind the tweet messages to the previous one available.
         */
        function previousTweet():void;
        
        /**
         * This method releases control for a user.
         */
        function release():void;
        
        //--------------------------------------------------------------------------
        //
        //  Properties
        //
        //--------------------------------------------------------------------------
        
        /**
         * This property contains an instance of the <code>ITweetRenderer</code> used
         * to render the tweets.
         */
        function get renderer():ITweetRenderer;
        
    }
    
}